package net.guerlab.smart.uploader.api;

import net.guerlab.spring.upload.entity.IFileInfo;
import org.springframework.web.multipart.MultipartFile;

/**
 * 上传服务接口
 *
 * @author guer
 */
public interface UploadApi {

    /**
     * 上传单个文件
     *
     * @param file
     *         file
     * @return 文件信息
     */
    default IFileInfo single(MultipartFile file) {
        return single(file, null);
    }

    /**
     * 上传单个文件
     *
     * @param fileBase64
     *         文件base64字符串
     * @return 文件信息
     */
    default IFileInfo base64Single(String fileBase64) {
        return base64Single(fileBase64, null);
    }

    /**
     * 上传单个文件
     *
     * @param file
     *         file
     * @param path
     *         保存路径
     * @return 文件信息
     */
    IFileInfo single(MultipartFile file, String path);

    /**
     * 上传单个文件
     *
     * @param fileBase64
     *         文件base64字符串
     * @param path
     *         保存路径
     * @return 文件信息
     */
    IFileInfo base64Single(String fileBase64, String path);
}
